/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package compilador.analisadorSintatico.simboloGramatical;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author Thiago
 */
public class NaoTerminal implements SimboloGramatical{

    private List<SimboloGramatical> filhos;
    private String nome;
    private String tipoResultante;

    public NaoTerminal(String nome){
        this.nome = nome;
        filhos = new LinkedList<SimboloGramatical>();
    }

    public NaoTerminal() {
        this.filhos = new ArrayList<SimboloGramatical>();
    }
    
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTipoResultante() {
        return tipoResultante;
    }

    public void setTipoResultante(String tipoResultante) {
        this.tipoResultante = tipoResultante;
    }
    
    public List<SimboloGramatical> getFilhos() {
        return this.filhos;
    }
    
    public SimboloGramatical get(int index){
        SimboloGramatical filho = null;
        
        if(getFilhos() != null && index < getFilhos().size())
            filho = getFilhos().get(index);
        
        return filho;
    }

    public void add(SimboloGramatical simbolo){
        filhos.add(simbolo);
    }
}
